package test02;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

/**
 * @Author czl
 * @Date 2024-04-15
 */
public class MainTest01 {
    public static void main(String[] args) {
        List<String> list1 = Arrays.asList("张三三","李四","王五","赵六","大傻椿");

        List<String> list2 = Arrays.asList("孙小七","张太白","张恶不赦","张三丰");

        //第一个List集合中，筛选姓名有三个字的学生，存储到一个新的集合中
        //第一个List集合筛选后只取前3人，存储到新的集合中
        List<String> limit1 = list1.stream().filter(t -> t.length() == 3)
                .limit(3).collect(Collectors.toList());

        //第二个List集合中只要姓张的学生，存储到新的集合中
        //第二个List集合筛选后，跳过前2人，存储到新的集合中
        List<String> limit2 = list2.stream().filter(t -> t.startsWith("张"))
                .skip(2).collect(Collectors.toList());

        //合并两个List集合，存储到新的集合中
        Stream<String> concat = Stream.concat(limit1.stream(), limit2.stream());

        //在合并的List集合中，根据姓名实例化学生类对象，存储到新的集合中
        List<String> collect = concat.map(String::new).collect(Collectors.toList());

        //打印输出学生对象集合的信息
        collect.forEach(System.out::println);


    }
}
